import os
from pdf2image import convert_from_path
from pdf2image.exceptions import PDFInfoNotInstalledError
# 安装模块： pip install pdf2image

# poppler(解析和渲染PDF文件的库) 找到bin文件
poppler_bin_path = "Release-24.02.0-0/poppler-24.02.0/Library/bin"

# 获取系统的环境变量
original_path = os.environ.get('PATH', '')

# 判断poppler库是否写入环境变量，没有就写入环境变量
if poppler_bin_path not in original_path:
    os.environ['PATH'] = f'{poppler_bin_path};{original_path}'


def get_photo(pdf_path, photo_name):
    # 将PDF转换为图片
    try:
        images = convert_from_path(pdf_path)
    except PDFInfoNotInstalledError:
        print("无法转换PDF文件，请确保poppler已正确安装并添加到PATH环境变量。")
        return

    # 保存图片
    for i, image in enumerate(images):
        if len(images) == 1:
            # 如果只有一张图片，显示photo_name.png
            image_name = fr'.\{photo_name}.png'
        else:
            # 如果有多张图片，显示photo_name+i.png
            image_name = fr'.\{photo_name}_{i+1}.png'
        image.save(image_name)
        print(f"{image_name} 保存成功！")


if __name__ == '__main__':
    pdf_path = input("请输入你要转化的pdf源文件(格式： 路径\\文件名.后缀)：")
    photo_name = input("请输入你要保存的文件名(无需后缀)：")

    # 检查PDF文件是否存在
    if not os.path.exists(pdf_path):
        print(f"路径文件不存在：{pdf_path}")
    else:
        get_photo(pdf_path, photo_name)
